package helpers.grupo.jerarquia.integracion;

import helpers.*;
import cliente.pagina.*;
import comun.constantes.*;
import server.aula.ControlAula;
import server.grupo.Integracion.*;
import server.grupo.*;
import persistencia.dominio.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class HelperGestionIntegracion extends Helper {
  
  public HelperGestionIntegracion(Pagina pagina) {
    super(pagina);
  }

   
  public String getHTMLGestionIntegracion() throws Exception{
	  ControlAula controlAula = new ControlAula(this.persistencia);
	  ControlParticipanteGrupo controlParticipanteGrupo = new ControlParticipanteGrupo(this.persistencia);
	  boolean intercomision = ((Boolean)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.INTERCOMISION)).booleanValue();
	  Participante personaParticipante = null;
	  boolean esAlumno = true;
	  ParticipanteComision pteCom = null;
	  ControlGrupo controlGrupo = new ControlGrupo(this.persistencia);
	  Grupo grupo = controlGrupo.getGrupo(this.pagina.getIdGrupo());
	  ControlIntegracion controlIntegracion = new ControlIntegracion(this.persistencia);
	  if(intercomision)
	    	 personaParticipante = controlAula.getParticipante(this.pagina.getIdAula(),this.pagina.getIdPersona());
	  else{
			 pteCom = controlAula.getParticipanteComision(this.pagina.getIdComision(),this.pagina.getIdPersona());
			 personaParticipante = pteCom.getParticipante();
	  }
	  if(personaParticipante.getTipoUsuario().getNombre().compareTo(TIPO_USUARIOS.ALUMNO)!=0) esAlumno = false;
	  //ParticipanteComision pc = (ParticipanteComision)(controlGrupo.getPersonaRolGrupo(grupo.getId(),TIPO_ROL.LIDER).firstElement());
	  //Participante lider = pc.getParticipante();
	  String html = "";
	  html += "<div id=\"GestionIntegracion\">\n\t\t";
	  html += " <fieldset>\n\t\t";
      html += "   <legend>Gesti&oacute;n de Integraci&oacute;n</legend>\n\t\t";
      html += "     <strong>Funcionalidades de la Gesti&oacute;n.</strong>\n\t\t";
      html += "       <label>Cada enlace lo dirigir&aacute; a su respectiva funcionalidad</label>\n\t\t";
      html += "       <table border=\"0\" cellpadding=\"2\" cellspacing=\"5\" width=\"580\">\n\t\t";
      if((esAlumno && controlParticipanteGrupo.personaEsIntegranteDelGrupo(this.pagina.getIdGrupo(), this.pagina.getIdPersona()))
    		  || personaParticipante.getTipoUsuario().getNombre().compareTo(TIPO_USUARIOS.WEBMASTER)==0){
    	   if ((this.pagina.obtenerPermisoRecurso(RECURSOS.INVITACION).compareTo(TIPO_PERMISOS.ESCRITURA)==0) || 
    		   (personaParticipante.getTipoUsuario().getNombre().compareTo(TIPO_USUARIOS.WEBMASTER)==0)){
		  	   html += "        <tr>\n\t\t"; 
		  	   html += "         <td><a href=\""+this.pagina.getPathPaginas()+"invitacion_editar.jsp?"+this.getHTMLReferenciasParametros()+"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.REALIZAR+"\"><img align=\"middle\" src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/mas_al_grupo_chico.gif\" title=\"Invitar Persona\" width=\"20\" height=\"20\" border=\"0\"/></a></td>\n\t\t";
		       html += "		 <td><a href=\""+this.pagina.getPathPaginas()+"invitacion_editar.jsp?"+this.getHTMLReferenciasParametros()+"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.REALIZAR+"\"><strong>Realizar Invitaci&oacute;n</strong></a>. Permite invitar a una nueva persona para que integre su grupo.</td>\n\t\t";
			   html += "        </tr>\n\t\t";
    	   } 	   
      }
      if(!esAlumno || controlParticipanteGrupo.personaEsIntegranteDelGrupo(this.pagina.getIdGrupo(),this.pagina.getIdPersona())){
    	  if(!grupo.getParticipanteCuriosos().isEmpty()){
	    	  html += "        <tr>\n\t\t";
	    	  html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"prohibido_rechazado_curioso.jsp?"+this.getHTMLReferenciasParametros()+"\"><img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/usuarios_excluidos.gif\" title=\"Ver usuarios prohibidos, rechazados y curiosos\" width=\"20\" height=\"20\" border=\"0\"/></a></td>\n\t\t";
	    	  html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"prohibido_rechazado_curioso.jsp?"+this.getHTMLReferenciasParametros()+"\"><strong>Ver usuarios prohibidos, rechazados y curiosos</strong></a>. Permite consultar aquellos usuarios que por alguna raz&oacute;n no tienen permitido integrar el grupo actual.</td>\n\t\t";
	    	  html += "        </tr>\n\t\t";
    	  }
    	  if ((this.pagina.obtenerPermisoRecurso(RECURSOS.SOLICITUD).compareTo(TIPO_PERMISOS.NINGUNO)!=0) || 
       		   (personaParticipante.getTipoUsuario().getNombre().compareTo(TIPO_USUARIOS.WEBMASTER)==0)){
	    	  if(!controlIntegracion.getUltimasSolicitudes(grupo.getId(),5).isEmpty()){
		    	  html += "        <tr>\n\t\t";
		   	   	  html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"solicitudes.jsp?"+this.getHTMLReferenciasParametros()+"\"><img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/ver_solicitudes.gif\" title=\"Ver solicitudes de integraci&oacute;nn\" width=\"20\" height=\"20\" border=\"0\"/></a></td>\n\t\t";
		   	   	  html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"solicitudes.jsp?"+this.getHTMLReferenciasParametros()+"\"><strong>Ver solicitudes de integraci&oacute;n</strong></a>. Permite ver todas aquellas solicitudes que han sido realizadas por personas interesadas en integrar su grupo.</td>\n\t\t";
		   	   	  html += "        </tr>\n\t\t";
	    	  }
    	  }	  
    	  if ((this.pagina.obtenerPermisoRecurso(RECURSOS.INVITACION).compareTo(TIPO_PERMISOS.NINGUNO)!=0) || 
          		   (personaParticipante.getTipoUsuario().getNombre().compareTo(TIPO_USUARIOS.WEBMASTER)==0)){
	    	  if(!controlIntegracion.getUltimasInvitaciones(grupo.getId(),5).isEmpty()){
		   		  html += "        <tr>\n\t\t";
		  	      html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"invitaciones.jsp?"+this.getHTMLReferenciasParametros()+"\"><img src=\""+this.pagina.getPathRaiz()+"imagenes/imagenesNJ/ver_invitaciones.gif\" title=\"Ver invitaciones de integraci&oacute;nn\" width=\"20\" height=\"20\" border=\"0\"/></a></td>\n\t\t";
		  	      html += "	        <td><a href=\""+this.pagina.getPathPaginas()+"invitaciones.jsp?"+this.getHTMLReferenciasParametros()+"\"><strong>Ver invitaciones de integraci&oacute;n</strong></a>. Permite consultar todas aquellas invitaciones realizadas por los integrantes de su grupo, para que otras personas tambi&eacute;n pueden participar en su grupo.</td>\n\t\t";
		  	  	  html += "        </tr>\n\t\t";
	    	  }
    	  }	  
      }
      html += "       </table>\n\t";
      html += "	</fieldset>\n\t";
	  html += "</div>\n\t";
      return html;
  }
     
  private String getHTMLReferenciasParametros(){
	  return PARAMETROS_PAGINAS.REFRESH+"="+new Long((new java.util.Date()).getTime());
  }     
}

